Dimensions of reengineering environment infrastructures

نویسندگان

  • Stéphane Ducasse
  • Sander Tichelaar
چکیده

ion power of a logic programming language to do grouping. Hence it has support for intentional and extensional grouping, which is used to express design patterns and software architectures. Because of its integration with Smalltalk, the model is extensible. When the model needs to encompass new kinds of entities, only some reification rules have to be added to make those entities explicit in SOUL. It supports incremental loading by definition: during the logic inference process those parts of the system that are needed are reified on the fly. Extra model information can be added easily in the form of extra logic facts and rules. Referencing of elements in the model is done as in any other logic programming language, i.e., by the use of logic variables that reference Smalltalk entities. Finally, SOUL supports code refactoring. FAMIX and Moose. FAMIX is the meta-model we designed for modeling software [15] and theMoose Reengineering Environment is the platform we built with a repository based on this meta-model [20]. Moose supports reengineering of medium to large-sized industrial software systems in multiple objectoriented implementation languages. Its meta-model, FAMIX, defines a minimal language-independent core of information that is always available and on top of which additional levels of information can be added [43–46]. The supported languages are modeled at the program entity level. The meta-model defines a minimal core based on object-oriented concepts and can be extended to support new entities found in different languages or needed when supporting higher views of the applications. Model elements can be either referenced by unique name for the elements that have one (the entities), or by unique identifier which all elements have (both entities and relations). FAMIX illustrates the strong impact of choices for the referencing schema. The unique referencing schema supports grouping even over multiple models. The meta-model does not support grouping explicitly, but the environment requires that all entities have a unique name. Moose supports incremental loading. It uses standard exchange formats such as CDIF and XMI, but with the chunk referencing schema. Apart from the textual storage with CDIF and XMI, Moose can store its in-memory repository. The FAMIX metamodel does not support multiple models, but Moose does. The repository can hold multiple models, but textual information transfers (defined by the meta-model) do not contain information aboutmultiple models. Moose defines its own simple ER-like meta-meta model. This meta-meta model is used to generate meta-models and support generic tool facilities. FAMIX originally represented model information as part of its meta-model. Now we treat the meta-model information as an entity, because it avoids having a meta-model-specific section while loading models. However, the model and information about the model are mixed, which is conceptually a questionable design choice. Hence tools have to be aware that one entity representing the model information exists. Furthermore, entities can be annotated. Finally Moose provides experimental support for higher level refactorings based on program entity level information rather than the more complete AST level of information [25].

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Design Space for Reengineering Environment Infrastructures

Over the last decade many research groups have been developing reengineering environments. However, many design decisions such as support for multiple models, incremental loading of information, tool integration, entity grouping, and their impacts on the underlying meta-model and resulting environment have remained implicit. Based on the experience accumulated while developing the Moose reengin...

متن کامل

Techrisk –a Decisional Framework to Measure Technical Dimensions of Legacy Application for Rejuvenation through Reengineering

Competitive business environment wants to modernize existing legacy system in to self-adaptive ones. A variety of options are available to renovate legacy system in to more contemporary system. Recently the phenomenon of “software reengineering “, a methodology to allow old ways of thinking to be replaced with new, fresh approaches to increase productivity and quality of system, has been report...

متن کامل

Performance Indicators a tool to Support Spatial Data Infrastructure assessment

Funding the reengineering and recapitalisation of Spatial Data Infrastructures (SDIs) will, in part, depend on the ability of SDI component coordinators to comprehend and report on the performance of their initiatives. This is important for both aspects, as for reengineering, the performance of an infrastructure can only be improved if it is measured. For recapitalization, attracting new invest...

متن کامل

Model Driven Development and Dynamic Composition of Web Services

OF DISSERTATION GRADUATE SCHOOL, UNIVERSITY OF ALABAMA AT BIRMINGHAM Degree Ph.D. Program Computer and Information Sciences . Name of Candidate Fei Cao . Committee Chair Barrett R. Bryant . .Title Model Driven Development and Dynamic Composition of Web Services . Web Services (WS) have emerged as a new component-based software development paradigm in a network-centric environment based on the S...

متن کامل

A Collaborative Approach for Reengineering-based Product Line Scoping

Product line scoping is an important activity in reengineering-based software product line adoption. Both business issues and technical concerns have to be handled adequately. However, involving stakeholders representing these different concerns is not straightforward. Agile methods strongly emphasize stakeholder involvement and customer collaboration. In this paper we propose a collaborative a...

متن کامل

SysRisk –A Decisional Framework to Measure System Dimensions of Legacy Application for Rejuvenation through Reengineering

Software reengineering is the concept of gracefully modernizing a legacy application. Many organizations are planning to modernize their legacy application through reengineering .However many of these efforts are often less than successful because they concentrate on a narrow set of risk issues without fully considering a broader set of enterprise wise system, managerial and technical risk issu...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Journal of Software Maintenance

دوره 15  شماره 

صفحات  -

تاریخ انتشار 2003